import Vue from 'vue';

import TaskPlanTaskDetailView from './TaskPlanTaskDetailView.vue';

import { Loading } from 'element-ui';
import { getAsyncTaskPlanTaskViewInitData } from '@src/api/InitDataApi'


import qs from 'qs';
import platform from '@src/platform';
import { template } from 'lodash';
const componentItem = (initData) => {
  return {
    provide: {
      initData: Object.freeze(initData)
    },
    render(h) {
      return h(TaskPlanTaskDetailView);
    }
  }
}

Vue.component('async-component', function(resolve) {
  
  // 需要加loading 打开此注释
  // const instance = Loading.service({ fullscreen: true });
  
  let query = qs.parse(window.location.search.substr(1));
  const url = window.location.href;
  const index = url.lastIndexOf('/');
  const planId = url.substring(index + 1, url.length).split('?')[0];
  const params = Object.assign({}, query, {planId})
  getAsyncTaskPlanTaskViewInitData(params).then(result => {
    let initData = result?.result?.planTask || {}
    const title = (result && result.result && result.result.title) || ''
    const isSuccess = result.succ || result.success
    if (!isSuccess) {
      window.location.href = '/500'
      return 
    }
    
    try {
      window._init = JSON.stringify(initData)
    } catch (error) {
      console.error('initData 赋值失败')
    }
    
    // 需要加loading 打开此注释
    // instance.close();
    
    // if (window.frameElement) {
    //   const currentTabId = window.frameElement.dataset.id;
    //   platform.setTabTitle({
    //     id: currentTabId,
    //     title
    //   })
    // }
    resolve(componentItem(initData))
    
  }).catch(error => {
    console.error(error)
    window.location.href = '/500'
  })
  
});

let app = {
  render(h) {
    return <async-component />
  }
}

export default app;
